The present invention, in some embodiments thereof, relates to distributed storage management and, more specifically, but not exclusively, to continuous replica management according to estimated configuration(s).
Several approaches to alleviating reconfiguration bottlenecks in reconfigurable state machines have been proposed. The original idea is described in Lamport [L. Lamport, The part-time parliament. ACM Trans. Comput. Syst., 16(2):133-169, 1998, L. Lamport, Paxos made simple, ACM SIGACT News, 32(4):18-25, December 2001, L. Lamport, D. Malkhi, and L. Zhou. Reconfiguring a state machine. Technical report, Microsoft Research, 2008]. An exemplary implementation thereof is described in SMART, J. R. Lorch, A. Adya, W. J. Bolosky, R. Chaiken, J. R. Douceur, and J. Howell. The SMART way to migrate replicated stateful services. In Proc. EuroSys06, 2006. Basically, the idea is to delay the effect of the configuration agreed in a specific consensus instance by a fixed number alpha of successive consensus instances. If the configuration must take effect immediately, the remaining instances can be skipped by passing a special “window closure” decree consisting of alpha consecutive noop instances. Although this approach allows up to alpha consecutive commands to be executed concurrently, choosing the right value of alpha is nontrivial. On one hand, choosing a too small alpha may under-utilize the available resources. On the other hand, large values of alpha may not match the actual service reconfiguration rate resulting in too frequent invocations of the window closure decrees (which must complete synchronously).
Chubby [M. Burrows. The chubby lock service for loosely-coupled distributed systems. In Proceedings of the 7th symposium on Operating systems design and implementation, OSDI '06, pages 335-350, Berkeley, Calif., USA, 2006. USENIX Association.] and ZooKeeper [P. Hunt, M. Konar, F. P. Junqueira, and B. Reed. Zookeeper: wait-free coordination for internet-scale systems. In Proceedings of the 2010 USENIX conference on USENIX annual technical conference, USENIXATC'10, pages 11-11, Berkeley, Calif., USA, 2010. USENIX Association] expose high-level synchronization primitives (respectively, locks and watches) that can be used to implement a reconfigurable state machine within the client groups.